package cn.sciento.transfer.infra.data.check.store;

import java.util.List;
import java.util.Map;
import cn.sciento.transfer.infra.data.check.mapping.MappedIndex;
import cn.sciento.transfer.infra.data.check.mapping.MappedRow;

public interface DataStoreService {
  void saveRow(MappedRow paramMappedRow, String paramString);
  
  void batchSaveRow(List<MappedRow> paramList, String paramString);
  
  MappedRow searchAndCheckIndexByIndex(MappedIndex paramMappedIndex, String paramString);
  
  MappedRow searchRowByOffset(Long paramLong, String paramString);
  
  <K, V> Map<K, V> mappedBlockIndexToMap(String paramString, IndexPredicate<K, V> paramIndexPredicate, Long paramLong, int paramInt);
  
  <K, V> Map<K, V> mappedAllIndexToMap(String paramString, IndexPredicate<K, V> paramIndexPredicate);
  
  void deleteFile(String paramString);
  
  public static interface IndexPredicate<K, V> {
    K findKey(MappedIndex param1MappedIndex);
    
    V findValue(MappedIndex param1MappedIndex);
  }
}
